function Z = concatenate_structs(Outputs)


L = length(Outputs);

Z = Outputs{1};
for j = 2:L
    Z = ConcatXY(Z,Outputs{j});
end

function Z = ConcatXY(X,Y)

Z.DGP = X.DGP;

Z.RegCoef.true = X.RegCoef.true;
Z.RegCoef.b = [X.RegCoef.b;Y.RegCoef.b];
Z.RegCoef.se = [X.RegCoef.se;Y.RegCoef.se];
Z.RegCoef.fslower = [X.RegCoef.fslower;Y.RegCoef.fslower];
Z.RegCoef.fsupper = [X.RegCoef.fsupper;Y.RegCoef.fsupper];
Z.RegCoef.cover = [X.RegCoef.cover;Y.RegCoef.cover];
Z.RegCoef.length = [X.RegCoef.length;Y.RegCoef.length];

Z.TE.true = X.TE.true;
Z.TE.te = [X.TE.te;Y.TE.te];
Z.TE.se = [X.TE.se;Y.TE.se];
Z.TE.fslower = [X.TE.fslower;Y.TE.fslower];
Z.TE.fsupper = [X.TE.fsupper;Y.TE.fsupper];
Z.TE.cover = [X.TE.cover;Y.TE.cover];
Z.TE.length = [X.TE.length;Y.TE.length];


Z.PI.true = X.PI.true;
Z.PI.te = [X.PI.te;Y.PI.te];
Z.PI.se = [X.PI.se;Y.PI.se];
Z.PI.fslower = [X.PI.fslower;Y.PI.fslower];
Z.PI.fsupper = [X.PI.fsupper;Y.PI.fsupper];
Z.PI.cover = [X.PI.cover;Y.PI.cover];
Z.PI.length = [X.PI.length;Y.PI.length];




